<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

</head>

<body>
    <h2>h2标签</h2>
    <itany>自定义标签</itany>
    <hr>
    <img src="https://semantic-ui.com/images/avatar2/large/kristy.png" class="image">
    <hr>
    <user-card></user-card>
    <hr>
    <user-card></user-card>
    <hr>
    <user-card></user-card>
    <hr>
    <user-card></user-card>
    <hr>
    <user-card></user-card>


    
    <template id="userCard">
        <!-- 在template中定义的样式仅为当前模板提供样式支持 -->
        <style>
            /* css 伪类选择器    :host  -> 选择承载当前影子DOM的标签 */
            :host {
                display: flex;
                align-items: center;
                width: 450px;
                height: 180px;
                background-color: #d4d4d4;
                border: 1px solid #d5d5d5;
                box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.1);
                border-radius: 3px;
                overflow: hidden;
                padding: 10px;
                box-sizing: border-box;
                font-family: 'Poppins', sans-serif;
            }

            .image {
                flex: 0 0 auto;
                width: 160px;
                height: 160px;
                vertical-align: middle;
                border-radius: 5px;
            }

            .container {
                box-sizing: border-box;
                padding: 20px;
                height: 160px;
            }

            .container>.name {
                font-size: 20px;
                font-weight: 600;
                line-height: 1;
                margin: 0;
                margin-bottom: 5px;
            }

            .container>.email {
                font-size: 12px;
                opacity: 0.75;
                line-height: 1;
                margin: 0;
                margin-bottom: 15px;
            }

            .container>.button {
                padding: 10px 25px;
                font-size: 12px;
                border-radius: 5px;
                text-transform: uppercase;
            }
        </style>
        <img src="https://semantic-ui.com/images/avatar2/large/kristy.png" class="image">
        <div class="container">
            <p class="name">User Name</p>
            <p class="email">yourmail@some-email.com</p>
            <button class="button">Follow</button>
        </div>
    </template>

    <script>
        // 创建了一个用于构成新标签的 构造函数
        class UserCard extends HTMLElement {
            // 构造器方法会在该 class类被创建时调用
            constructor() {
                super(); // 在创建该对象前先创建 HTMLElement 对象
                // 自定义当前创建标签的页面结构和样式功能
                // var templateElem = document.getElementById("userCard");
                // // 需要更具模块clone元素结构
                // var content = templateElem.content.cloneNode(true);

                // // js 方式直接对 content 中的元素进行功能定义
                // var $button = content.querySelector("button");
                // $button.addEventListener("click", function () {
                //     console.log("1");
                // })

                // this.append(content);

                // 创建一个影子DOM对象，隔离组件的JS和样式
                var shadow = this.attachShadow( { mode: 'closed' } );

                var templateElem = document.getElementById('userCard');
                var content = templateElem.content.cloneNode(true);
                var $button = content.querySelector("button");
                $button.addEventListener("click", function () {
                    console.log("1");
                })
                shadow.appendChild(content);
            }
        }
        // window.customElements.define(标签名,标签构造函数);
        window.customElements.define("user-card", UserCard);
    </script>
</body>

</html>